﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISettingsSerializer.cs" company="DevDigital">
//   DevDigital
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace Settings.NET
{
    /// <summary>
    /// Settings serializer
    /// </summary>
    public interface ISettingsSerializer
    {
        /// <summary>
        /// Serializes the specified value.
        /// </summary>
        /// <typeparam name="TValue">The type of the value.</typeparam>
        /// <param name="value">The value.</param>
        /// <returns>The serialized value</returns>
        string Serialize<TValue>(TValue value);

        /// <summary>
        /// Deserializes the specified value.
        /// </summary>
        /// <typeparam name="TValue">The type of the value.</typeparam>
        /// <param name="value">The value.</param>
        /// <returns>The deserialized value</returns>
        TValue Deserialize<TValue>(string value);
    }
}